package cal

import (
	"idle/internal/game/attr"
	"idle/internal/game/hero"
)

type AttAttrCal struct {
}

func (a *AttAttrCal) Cal(h *hero.Hero) {
	baseAtt := h.GetAttr(attr.Dex) * 5
	h.SetAttr(attr.BaseAtt, baseAtt)

	extAtt := h.GetAttr(attr.ExtAtt)
	extAttRatio := h.GetAttr(attr.BonusToAttackRating)
	totalDef := (baseAtt + extAtt) * (100 + extAttRatio) / 100

	h.SetAttr(attr.Att, totalDef)

}

func (a *AttAttrCal) AssociatedAttr() []attr.Attribute {
	return []attr.Attribute{attr.Dex, attr.ExtAtt, attr.BonusToAttackRating}
}
